layui.use(['table','layer'],function (){
    var layer = parent.layer === undefined ? layui.layer : top.layer,
        $ = layui.jquery,
        table = layui.table;

    /**
     * 加载数据表格
     */

    // 创建渲染实例
    var tableIns = table.render({
        id:'saleChanceTable',
        elem: '#saleChanceList',
        url: ctx + '/sale_chance/list', // 此处为静态模拟数据，实际使用时需换成真实接口
        height: 'full-125', // 最大高度减去其他容器已占有的高度差
        cellMinWidth: 95, //单元格最小宽度
        page: true,
        limit:10,
        limits:[10,20,30,40,50],
        toolbar:'#toolbarDemo',

        cols: [[
            {type:'checkbox',fixed: 'center'},
            {field:'id',  title: '编号', sort: true, fixed: 'left',},
            {field:'chanceSource',title: '机会来源', align:'center'},
            {field:'customerName',title: '客户名称', align:'center'},
            {field:'cgjl',title: '成功几率', align:'center'},
            {field:'overview',title: '概要', align:'center'},
            {field:'linkMan',title: '联系人', align:'center'},
            {field:'linkPhone',title: '联系电话', align:'center'},
            {field:'description',title: '描述', align:'center'},
            {field:'createMan',title: '创建人', align:'center'},
            {field:'uname',title: '分配人', align:'center'},
            {field:'assignTime',title: '分配时间', align:'center'},
            {field:'createDate',title: '创建时间', align:'center'},
            {field:'updateDate',title: '更新时间', align:'center'},
            {field:'state',title: '分配状态', align:'center',templet: function (d){
                //调用函数，返回格式化的结果
                    return formatState(d.state);
                }},
            {field:'devResult',title: '开发状态', align:'center',templet:function (d){
                return formatDevResult(d.devResult);
                }},
            {title: '操作',templet:'#saleChanceListBar',fixed: 'right',align: 'center',minWidth:150}
        ]]
    });

    /**
     * 0  未分配
     * 1  已分配
     * 其他   未知
     * @param state
     * @returns {string}
     */
    function formatState(state){
        if (state == 0){
            return "<div style='color:yellow'>未分配</div>";
        }else if (state == 1){
            return "<div style='color:green'>已分配</div>";
        }else {
            return "<div style='color:red'>未知</div>";
        }
    }


    function formatDevResult(devResult){
        if (devResult == 0){
            return "<div style='color:green'>未开发</div>";
        }else if (devResult == 1){
            return "<div style='color:orange'>开发中</div>";
        }else if (devResult == 2){
            return "<div style='color:green'>开发成功</div>";
        }else if (devResult == 3){
            return "<div style='color:red'>开发失败</div>";
        }else {
            return "<div style='color:blue'>未知</div>";
        }
    }

    /**
     * 搜索按钮的点击事件
     */
    $(".search_btn").click(function (){

        /**
         * 表格重载
         *  多条件查询
         */
        tableIns.reload({
            //设置需要传递给后端的参数
            where:{//设定异步数据接口的额外参数，任意设
                //通过文本框/下拉框的值，设置传递的参数
                customerName:$("[name='customerName']").val(), //客户名称
                createMan:$("[name='createMan']").val(),//创建人
                state:$("#state").val()//状态
            },
            page:{
                curr: 1 //重新从第一页开始
            }

        })
    })


    /**
     * 头部⼯具栏 监听事件
     */
    table.on('toolbar(saleChances)', function(data){
        console.log(data);

        //判断对应的事件类型
        if (data.event == "add"){
            //添加操作
            openAddOrUpdateSaleChanceDialog()
        }else if (data.event == 'del'){
            //删除操作
            deleteSaleChance(data);
        }
    });
    /**
     * 打开添加\修改营销机会的对话框
     */
    function openAddOrUpdateSaleChanceDialog(saleChanceId) {
        var title = "<h2>营销机会管理 - 添加营销机会</h2>";
        var url = ctx + "/sale_chance/toSaleChancePage";

        //判断营销机会ID是否为空
        if (saleChanceId != null && saleChanceId != ''){
            //更新操作
            title = "<h2>营销机会管理 - 更新营销机会</h2>";
            //请求地址传递营销机会的ID
            url += '?saleChanceId=' + saleChanceId;
        }

        layui.layer.open({
            title:title,
            type:2,
            content: url,
            area:["500px","620px"],
            maxmin:true
        });
    }


    /**
     * 表格⾏ 监听事件
     * saleChances为table标签的lay-filter 属性值
     */
    table.on('tool(saleChances)', function(obj) {
        var data = obj.data; // 获得当前⾏数据
        var layEvent = obj.event; // 获得 lay-event 对应的值（也可以是表头的 event 参数对应的值）
        // 判断事件类型
        if (layEvent === 'edit') { // 编辑操作
            // 获取当前要修改的⾏的id
            var saleChanceId = data.id;
            // 点击表格⾏的编辑按钮，打开更新营销机会的对话框
            openAddOrUpdateSaleChanceDialog(saleChanceId);
        }else if (layEvent == "del"){
            //删除操作
            layer.confirm('确定删除该记录吗？',{icon:3,title:"营销机会管理"},function (index){
                //关闭确认框
                layer.close(index);
                //发送ajax请求
                $.ajax({
                    type:"post",
                    url: ctx+"/sale_chance/delete",
                    data:{
                        ids:data.id
                    },
                    success:function (result){
                        //判断删除结果
                        if (result.code == 200){
                            //提示成功
                            layer.msg("删除成功！",{icon: 6});
                            //刷新表格
                            tableIns.reload();
                        }else {
                            //提示失败
                            layer.msg(result.msg,{icon:5});
                        }
                    }
                })
            })
        }
    });


    function deleteSaleChance(data){
        //获取数据表格中的行数据
         var checkStatus = table.checkStatus("saleChanceTable");

         //获取所有被选中的记录对应的数据
        var saleChanceData = checkStatus.data;
        //判断用户是否选择的记录
        if (saleChanceData.length<1){
            layer.msg('请选择要删除的记录！',{icon:5});
            return;
        }
        //询问用户是否确认删除
        layer.confirm('您确定要删除选中的记录吗？',{icon:3,title:'营销机会管理'},function (index){
            //关闭确认框
            layer.close(index);
            //传递的参数是数组
            var ids = "ids=";
            //循环选中的行记录的数据
            for (var i=0;i<saleChanceData.length;i++){
                if (i<saleChanceData.length-1){
                    ids = ids+saleChanceData[i].id+"&ids=";
                }else {
                    ids = ids+saleChanceData[i].id;
                }
            }
            //发送ajax请求
            $.ajax({
                type:"post",
                url:ctx+"/sale_chance/delete",
                data:ids,//传递的是数据
                success:function (result){
                    //判断删除结果
                    if (result.code == 200){
                        //提示成功
                        layer.msg("删除成功！",{icon: 6});
                        //刷新表格
                        tableIns.reload();
                    }else {
                        //提示失败
                        layer.msg(result.msg,{icon:5});
                    }
                }
            })
        });
    }

});